package com.bestcem.xm.label.service.dto.label;

import com.bestcem.xm.label.entity.pojo.LabelValueDO;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.Objects;

/**
 * @ClassName TagValueDTO
 * @Description 标签值DTO
 * @Author yf.wang <yf.wang@idiaoyan.com>
 * @Date 2021/5/19
 * @Version V1.0
 */

@ToString
@NoArgsConstructor
@Getter
@Setter
public class LabelValueDTO {

    /**
     * 标签值id
     */
    private String id;

    /**
     * 组织id
     */
    private String orgId;

    /**
     * 标签值
     */
    private String value;

    /**
     * 与标签中相同手动打标签
     */
    private Boolean manual;

    /**
     * 与标签中相同自动打标签
     */
    private Boolean auto;

    /**
     * 标签值序号
     */
    private Integer serial;

    /**
     * 标签id
     */
    private String labelId;

    /**
     * 标签名称
     */
    private String labelName;

    /**
     * 标签组id
     */
    private String labelGroupId;

    /**
     * 标签组名称
     */
    private String labelGroupName;

    /**
     * 标签值对应的条件
     */
    private String condition;

    /**
     * 标签的属性，归属于哪种联系人
     */
    private Integer attribute;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;


    public static LabelValueDTO convert(LabelValueDO labelValue) {
        LabelValueDTO labelValueDTO = new LabelValueDTO();
        if (labelValue == null) {
            return labelValueDTO;
        }

        labelValueDTO.setId(labelValue.getLabelValueId());
        labelValueDTO.setOrgId(labelValue.getOrgId());
        labelValueDTO.setValue(labelValue.getValue());

        if (Objects.nonNull(labelValue.getManual())) {
            labelValueDTO.setManual(labelValue.getManual() == 1);
        }
        if (Objects.nonNull(labelValue.getAuto())) {
            labelValueDTO.setAuto(labelValue.getAuto() == 1);
        }

        labelValueDTO.setSerial(labelValue.getSeq());
        labelValueDTO.setLabelId(labelValue.getLabelId());
        labelValueDTO.setLabelName(labelValue.getLabelName());
        labelValueDTO.setLabelGroupId(labelValue.getLabelGroupId());
        labelValueDTO.setLabelGroupName(labelValue.getLabelGroupName());
        labelValueDTO.setCondition(labelValue.getCondition());
        labelValueDTO.setAttribute(labelValue.getMemberType());
        labelValueDTO.setCreateTime(labelValue.getCreateTime());
        labelValueDTO.setUpdateTime(labelValue.getUpdateTime());
        return labelValueDTO;
    }
}
